public class Student {
    private String studentId;   // 学生编号
    private String name;        // 学生姓名
    private String gender;      // 学生性别
    private Course selectedCourse; // 所选课程（关联 Course 类）

    // 构造方法：初始化学生基本信息
    public Student(String studentId, String name, String gender) {
        this.studentId = studentId;
        this.name = name;
        this.gender = gender;
        this.selectedCourse = null; // 初始未选课
    }

    // 「选课」方法：学生关联一门课程（简化为“每名学生只选1门课”）
    public void selectCourse(Course course) {
        this.selectedCourse = course;
    }

    // 「退课」方法：取消所选课程
    public void dropCourse() {
        this.selectedCourse = null;
    }

    // 「打印课表」方法：输出学生所选课程的详细信息
    public void printCourseSchedule() {
        System.out.println("=== 学生 " + name + "（编号：" + studentId + "）的课表 ===");
        if (selectedCourse != null) {
            Course course = selectedCourse;
            System.out.println("课程编号：" + course.getCourseId());
            System.out.println("课程名称：" + course.getCourseName());
            System.out.println("上课地点：" + course.getLocation());
            System.out.println("上课时间：" + course.getTime());
            System.out.println("授课教师：" + course.getTeacher().getName());
        } else {
            System.out.println("当前未选课程！");
        }
        System.out.println("========================\n");
    }

    // Getter 方法
    public String getStudentId() {
        return studentId;
    }

    public String getName() {
        return name;
    }

    public String getGender() {
        return gender;
    }

    public Course getSelectedCourse() {
        return selectedCourse;
    }

    // Setter 方法
    public void setStudentId(String studentId) {
        this.studentId = studentId;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public void setSelectedCourse(Course selectedCourse) {
        this.selectedCourse = selectedCourse;
    }

    // 重写 toString，方便打印学生信息
    @Override
    public String toString() {
        return "Student{编号='" + studentId + "', 姓名='" + name + "', 性别='" + gender + "', 所选课程=" 
               + (selectedCourse != null ? selectedCourse.getCourseName() : "暂无") + "}";
    }
}